Paradigms | Reflective, class-based object-oriented |
---|---|
Family | C |
Designed by | Brad Cox, Tom Love |
First appeared | 1984 |
Stable release | 2.0[1]
|
Typing discipline | Static, dynamic, weak |
OS | Cross-platform |
Filename extensions | .h, .m, .mm, .M |
Website | developer.apple.com |
Major implementations | |
Clang, GCC | |
Influenced by | |
C, Smalltalk | |
Influenced | |
Groovy, Java, Nu, Objective-J, TOM, Swift[2] | |
|
Objective-C is a high-level general-purpose, object-oriented programming language that adds Smalltalk-style message passing (messaging) to the C[3] programming language. Originally developed by Brad Cox and Tom Love in the early 1980s, it was selected by NeXT for its NeXTSTEP operating system. Due to Apple macOS’s direct lineage from NeXTSTEP,[4] Objective-C was the standard language used, supported, and promoted by Apple for developing macOS and iOS applications (via their respective application programming interfaces (APIs), Cocoa and Cocoa Touch) from 1997, when Apple purchased NeXT until the introduction of the Swift language in 2014.[3]
Objective-C programs developed for non-Apple operating systems or that are not dependent on Apple's APIs may also be compiled for any platform supported by GNU GNU Compiler Collection (GCC) or LLVM/Clang.
Objective-C source code 'messaging/implementation' program files usually have .m
filename extensions, while Objective-C 'header/interface' files have .h
extensions, the same as C header files. Objective-C++ files are denoted with a .mm
filename extension.
The Swift language is the product of tireless effort from a team of language experts, documentation gurus, compiler optimization ninjas, and an incredibly important internal dogfooding group who provided feedback to help refine and battle-test ideas. Of course, it also greatly benefited from the experiences hard-won by many other languages in the field, drawing ideas from Objective-C, Rust, Haskell, Ruby, Python, C#, CLU, and far too many others to list.